//
//  PMGrooveJoint.h
//  PezMonkey
//
//  Created by Spence DiNicolantonio on 10/31/09.
//  Copyright 2009 Necrosoft. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "PMCore.h"
#import "PMConstraint.h"


@interface PMGrooveJoint : PMConstraint {

}

// Property definitions of getters/setters for data members stored by backend 
// Chipmunk structure. These properties are not synthesized, because their 
// implementations are given explicitly.
@property (assign) PMSegment groove;
@property (assign) PMAnchor anchor;


#pragma mark -
#pragma mark Init
- (id)initWithGroove:(PMSegment)groove onBodyA:(PMBody *)aBody bodyB:(PMBody *)otherBody; 
- (id)initWithGroove:(PMSegment)groove onBodyA:(PMBody *)aBody anchor:(PMAnchor)anchor onBodyB:(PMBody *)otherBody; 

#pragma mark Convenience
+ (PMGrooveJoint *)grooveJointWithGroove:(PMSegment)groove onBodyA:(PMBody *)aBody bodyB:(PMBody *)otherBody; 
+ (PMGrooveJoint *)grooveJointWithGroove:(PMSegment)groove onBodyA:(PMBody *)aBody anchor:(PMAnchor)anchor onBodyB:(PMBody *)otherBody; 

@end
